<?php 
	/**
	*  
	*/
	class GroupController extends BaseController {
		
		public function __construct($action, $urlValues) {
        parent::__construct($action, $urlValues);
         if(!Helper::isLogin()){
            //save current url: after login, auto redirect client to current url
            $_SESSION['lastUrl'] = Helper::currentPageURL();
            //redirect to login page
            header( 'Location: '.BASE_URL.'account/login' ) ;
        }
        //create the model object
        require("models/group.php");
        $this->model = new GroupModel();      
   		 }

   		protected function index(){
            if(Helper::Authenticate('XemNhom')){
    	        if(!empty($_GET['id'])){
    	             $para = $_GET['id'];
    	        }
    	        else $para=1;
    	        $this->view->output_admin($this->model->index($para)); 
            }
            else Helper::redirect();
   		}
   		protected function create(){
            if(Helper::Authenticate('ThemNhom')){
    	        //load data post from client
    	        if ( !empty($_POST)) {
    	        	if(!array_key_exists('cancel', $_POST)) {
    		            $data = array(
    		                'TenNhom'=>$_POST['TenNhom'],
    		                'MoTa'=>$_POST['MoTa'],
    		                );
    		            $idlist=@$_POST['check_list'];
    		             
    		            //save item and return id of item created
    		            $result = $this->model->create($data,'');
    		            if($result){
    		            	if(!empty($idlist)){
    			            	foreach ($_POST['check_list'] as $idFunction) {
    			            		$data1 = array(
    				                'IdNhom'=>$result,
    				                'IdChucNang'=>$idFunction
    				                );
    				                $result1=$this->model->create($data1,'both');
    			            	}
    		            	}
    		                $alert = array(
    		                    'class' => 'alert-success',
    		                    'message' => 'Thêm nhóm thành công' 
    		                    );
    		                $_SESSION['message'] = $alert;
    		                header( 'Location: '. BASE_URL . 'group/index' );
    		            }
    		        }
    	        }
    	        //else header( 'Location: '. BASE_URL . 'group/index' );
    	        //load form create
    	        $this->view->output_admin($this->model->create('')); 
            } else Helper::redirect();
    	}
    	protected function delete(){
            if(Helper::Authenticate('XoaNhom')){
            // Kiểm tra nút Áp dụng xóa nhiều có được click hay chưa.
            //when client delete multi item
            if(!empty($_POST)) {
                $result = $this->model->delete('nd_nhom', 'id IN('.implode(',',$_POST['check_list']).')');
            }
            else
                $result = $this->model->delete('nd_nhom', 'id='.$this->urlValues['id']);

            if($result){
                $alert = array(
                    'class' => 'alert-success',
                    'message' => 'Xóa nhóm quyền thành công' 
                    );
                $_SESSION['message'] = $alert;
            }

            header( 'Location: '. BASE_URL . 'group/index');
        } else Helper::redirect();
    }
     protected function getFunction(){
         if(array_key_exists('delete-multi', $_POST))
         {
            if($_POST['action']==""){
            $this->alert('alert-warning','Chưa chọn tác vụ để xóa');   
            return;
            }
            if(isset($_POST['check_list']))
             $this->delete();
             else {
                $this->alert('alert-warning','Chưa chọn nhóm để xóa');
                return;
            }
         }
        else 
        if(array_key_exists('btnsearch', $_POST))
             $this->findGroup();
    }
     function alert($class,$message){
        $alert = array(
                    'class' => $class,
                    'message' => $message 
                    );
                $_SESSION['message'] = $alert;
                header( 'Location: '. BASE_URL . 'group/index');
    }
    protected function update(){
        if(Helper::Authenticate('SuaNhom')){
        //load data update post from client
            if(!empty($_POST)){
                //get data from POST
                $id = $this->urlValues['id'];
                $data = array(
                    'TenNhom' => $_POST['TenNhom'], 
                    'MoTa' => $_POST['MoTa'], 
                    );
                //update item group -> return total rows affected
                $result = $this->model->edit($id, $data);
                    //xóa những chức năng của Nhóm
                    $result1 = $this->model->delete('nd_nhomchucnang', 'IdNhom='.$id);
                    //thêm mới những chức năng cho nhóm
                    $idlist=@$_POST['check_list']; 
                    if(!empty($idlist)){
                        foreach ($_POST['check_list'] as $idFunction) {
                            $data1 = array(
                            'IdNhom'=>$id,
                            'IdChucNang'=>$idFunction
                            );
                            $result2=$this->model->create($data1,'both');
                        }
                    }
                    $alert = array(
                        'class' => 'alert-success',
                        'message' => 'Cập nhật nhóm quyền thành công' 
                        );
                    $_SESSION['message'] = $alert;
                    header( 'Location: '. BASE_URL . 'group/index' ) ;
            }
            //load form update
            $this->view->output($this->model->edit($id=$this->urlValues['id'], $data=''));
        } else Helper::redirect();
    }

	}
 ?>